{
 "cells": [
  {
   "cell_type": "code",
   "id": "cc4e5d82-52d2-4478-99d8-7576561b4cb4",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-01T06:55:20.883289Z",
     "start_time": "2025-10-01T06:55:19.995360Z"
    }
   },
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 模拟数据\n",
    "np.random.seed(42)\n",
    "grades = np.random.randint(0, 101, 50)\n",
    "\n",
    "\n",
    "# 设置字体为苹方（macOS 默认中文字体）\n",
    "plt.rcParams['font.sans-serif'] = ['PingFang SC']\n",
    "plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题\n",
    "\n",
    "# 创建画布和子图\n",
    "fig, ax = plt.subplots()\n",
    "ax.hist(grades, bins=10, edgecolor='black')\n",
    "\n",
    "# 设置坐标轴标签和标题\n",
    "ax.set_xlabel('成绩范围')\n",
    "ax.set_ylabel('学生数量')\n",
    "ax.set_title('学生成绩分布')\n",
    "\n",
    "# 显示图形\n",
    "plt.show()\n"
   ],
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 23398 (\\N{CJK UNIFIED IDEOGRAPH-5B66}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 29983 (\\N{CJK UNIFIED IDEOGRAPH-751F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25104 (\\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 32489 (\\N{CJK UNIFIED IDEOGRAPH-7EE9}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20998 (\\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 24067 (\\N{CJK UNIFIED IDEOGRAPH-5E03}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 33539 (\\N{CJK UNIFIED IDEOGRAPH-8303}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/anaconda3/envs/ml/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 22260 (\\N{CJK UNIFIED IDEOGRAPH-56F4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n",
      "findfont: Generic family 'sans-serif' not found because none of the following families were found: PingFang SC\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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LQDwySJUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSlXuo3HXXXTFq1Kjo379/jB8/Pp566qm8RwIAEpFrqDz44IMxe/bsuOmmm2LTpk1x7rnnxpQpU6K2tjbPsQCAROQaKnfccUf87d/+bXz729+Ok08+ORYtWhQVFRWxePHiPMcCABKRW6js378/ampqYvLkya2OT548OZ5++umcpgIAUtInrweur6+PpqamOPbYY1sdP/bYY+Ott95q82uKxWIUi8WW6w0NDRER0djY2Onz7dmz5/8f862Xo3n/vk6//67w/q66iDBzVzNz9zBz9zBz9+mJc7//h99FxP//TuzM37Uf3FeWZR+/OMvJ66+/nkVE9vTTT7c6Pn/+/Oykk05q82tuueWWLCJcXFxcXFxcjoBLXV3dx/ZCbs+oDBkyJHr37n3Qsyc7d+486FmWD8yZMyeqqqparjc3N8cf/vCHKCsri5KSksOepbGxMSoqKqKuri4GDx582PfDx7PX3cdedx973b3sd/fpqr3Osix2794d5eXlH7s2t1Dp169fjB8/PlasWBF/9Vd/1XJ8xYoVcfHFF7f5NYVCIQqFQqtjRx99dKfNNHjwYN/03cRedx973X3sdfey392nK/a6tLS0XetyC5WIiKqqqrjiiiuisrIyJkyYEPfcc0/U1tbG1VdfnedYAEAicg2Vb3zjG7Fr16647bbb4s0334yxY8fGL37xixg5cmSeYwEAicg1VCIirr322rj22mtznaFQKMQtt9xy0MtKdD573X3sdfex193LfnefFPa6JMva894gAIDul/vf+gEAOBShAgAkS6gAAMkSKgBAsoRKRNx1110xatSo6N+/f4wfPz6eeuqpvEfq0aqrq+PMM8+MQYMGxdChQ+OSSy6JF198sdWaLMvi1ltvjfLy8hgwYEBMmjQptm7dmtPER47q6uooKSmJ2bNntxyz153r9ddfj2nTpkVZWVkcddRRcfrpp0dNTU3L7fa7cxw4cCBuvvnmGDVqVAwYMCBOOOGEuO2226K5ublljb0+PKtXr46LLrooysvLo6SkJJYvX97q9vbsa7FYjOuvvz6GDBkSAwcOjL/8y7+M3/3ud10z8J/0B3uOAMuWLcv69u2b3XvvvdkLL7yQzZo1Kxs4cGD22muv5T1aj3XBBRdkS5YsyZ5//vls8+bN2dSpU7MRI0Zke/bsaVmzcOHCbNCgQdlDDz2UbdmyJfvGN76RHXfccVljY2OOk/ds69aty44//vhs3Lhx2axZs1qO2+vO84c//CEbOXJkdtVVV2XPPPNMtmPHjmzlypXZyy+/3LLGfneO+fPnZ2VlZdljjz2W7dixI/v5z3+efepTn8oWLVrUssZeH55f/OIX2U033ZQ99NBDWURkjzzySKvb27OvV199dfbZz342W7FiRbZx48bs/PPPz0477bTswIEDnT7vJz5UzjrrrOzqq69udWz06NHZjTfemNNER56dO3dmEZGtWrUqy7Isa25uzoYNG5YtXLiwZc2+ffuy0tLS7O67785rzB5t9+7d2ec///lsxYoV2XnnndcSKva6c91www3ZxIkTD3m7/e48U6dOzWbMmNHq2F//9V9n06ZNy7LMXneWPw6V9uzrO++8k/Xt2zdbtmxZy5rXX38969WrV/bEE090+oyf6Jd+9u/fHzU1NTF58uRWxydPnhxPP/10TlMdeRoaGiIi4phjjomIiB07dsRbb73Vat8LhUKcd9559v0wzZw5M6ZOnRpf/epXWx23153r0UcfjcrKyrj00ktj6NChccYZZ8S9997bcrv97jwTJ06MX/3qV7F9+/aIiHj22WdjzZo18fWvfz0i7HVXac++1tTUxPvvv99qTXl5eYwdO7ZL9j73T6bNU319fTQ1NR3015qPPfbYg/6qM4cny7KoqqqKiRMnxtixYyMiWva2rX1/7bXXun3Gnm7ZsmWxcePGWL9+/UG32evO9corr8TixYujqqoq5s6dG+vWrYvvfOc7USgU4sorr7TfneiGG26IhoaGGD16dPTu3TuamppiwYIFcdlll0WE7+2u0p59feutt6Jfv37x6U9/+qA1XfG78xMdKh8oKSlpdT3LsoOOcXiuu+66eO6552LNmjUH3Wbf/3R1dXUxa9as+OUvfxn9+/c/5Dp73Tmam5ujsrIybr/99oiIOOOMM2Lr1q2xePHiuPLKK1vW2e8/3YMPPhhLly6NBx54IMaMGRObN2+O2bNnR3l5eUyfPr1lnb3uGoezr12195/ol36GDBkSvXv3PqgAd+7ceVBN0nHXX399PProo/Gb3/wmhg8f3nJ82LBhERH2vRPU1NTEzp07Y/z48dGnT5/o06dPrFq1Kv75n/85+vTp07Kf9rpzHHfccXHKKae0OnbyySdHbW1tRPje7kx///d/HzfeeGN885vfjFNPPTWuuOKK+O53vxvV1dURYa+7Snv2ddiwYbF///54++23D7mmM32iQ6Vfv34xfvz4WLFiRavjK1asiLPPPjunqXq+LMviuuuui4cffjh+/etfx6hRo1rdPmrUqBg2bFirfd+/f3+sWrXKvnfQV77yldiyZUts3ry55VJZWRmXX355bN68OU444QR73YnOOeecg95qv3379pa/+O57u/Ps3bs3evVq/Suqd+/eLW9Pttddoz37On78+Ojbt2+rNW+++WY8//zzXbP3nX56bg/zwduT77vvvuyFF17IZs+enQ0cODB79dVX8x6tx7rmmmuy0tLS7Mknn8zefPPNlsvevXtb1ixcuDArLS3NHn744WzLli3ZZZdd5m2FneTD7/rJMnvdmdatW5f16dMnW7BgQfbSSy9l//Ef/5EdddRR2dKlS1vW2O/OMX369Oyzn/1sy9uTH3744WzIkCHZP/zDP7SssdeHZ/fu3dmmTZuyTZs2ZRGR3XHHHdmmTZtaPpajPft69dVXZ8OHD89WrlyZbdy4Mfvyl7/s7cld6V//9V+zkSNHZv369cu+8IUvtLyNlsMTEW1elixZ0rKmubk5u+WWW7Jhw4ZlhUIh+9KXvpRt2bIlv6GPIH8cKva6c/3Xf/1XNnbs2KxQKGSjR4/O7rnnnla32+/O0djYmM2aNSsbMWJE1r9//+yEE07IbrrppqxYLLassdeH5ze/+U2bP6OnT5+eZVn79vW9997LrrvuuuyYY47JBgwYkF144YVZbW1tl8xbkmVZ1vnP0wAA/Ok+0eeoAABpEyoAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAky19PBrrM008/Hddee22bt/3FX/xFbNiwIerr69u8fd26dXH33XfHv//7v7d5+8033xyVlZVxySWXtHn7uHHj4qc//elhzQ2kQ6gAXaaxsTEuueSSuPXWW1sdf/XVV+PGG2+MPXv2xObNmw/6ukmTJkVzc3O88cYbsWjRopg0aVKr2++///6or6+Pffv2xemnnx7333//QffxxS9+sfP+IUBuvPQDACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJ8hH6QJcpLS2Nxx57LB577LGDbrvgggvinXfeicrKyja/tlevXjF8+PD4/ve/3+btc+fOjQEDBsTzzz/f5n2ceuqpf9rwQBJKsizL8h4CAKAtXvoBAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkvV/WTCHsgcYRpIAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data",
     "jetTransient": {
      "display_id": null
     }
    }
   ],
   "execution_count": 1
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "e258ed61e05f80b1"
  },
  {
   "metadata": {},
   "cell_type": "code",
   "source": "",
   "id": "3e2b5c0f3379463c",
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "id": "58a06547-83e1-477a-91f6-1bae8281aa3b",
   "metadata": {},
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.stats import poisson\n",
    "\n",
    "# 设置参数\n",
    "lambda_val = 3  # 平均每小时事件发生次数\n",
    "k_values = np.arange(0, 11)  # 0 到 10 次事件发生的概率\n",
    "probabilities = poisson.pmf(k_values, mu=lambda_val)\n",
    "\n",
    "# 绘图\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(k_values, probabilities, color='skyblue', edgecolor='black')\n",
    "plt.title('Poisson Distribution (λ = 3)', fontsize=16)\n",
    "plt.xlabel('Number of Events (k)', fontsize=12)\n",
    "plt.ylabel('Probability P(k)', fontsize=12)\n",
    "plt.grid(axis='y', linestyle='--', alpha=0.7)\n",
    "plt.xticks(k_values)\n",
    "plt.show()\n"
   ],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "id": "28948bb9-74bf-4397-b1d7-9c8a62482a1d",
   "metadata": {},
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.stats import expon\n",
    "\n",
    "lambda_val = 0.2\n",
    "scale = 1 / lambda_val\n",
    "x = np.linspace(0, 20, 200)\n",
    "\n",
    "pdf = expon.pdf(x, scale=scale)\n",
    "cdf = expon.cdf(x, scale=scale)\n",
    "\n",
    "plt.figure(figsize=(12,5))\n",
    "\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(x, pdf, label='PDF')\n",
    "plt.title('指数分布的概率密度函数')\n",
    "plt.xlabel('时间 t')\n",
    "plt.ylabel('密度 f(t)')\n",
    "plt.grid(True)\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(x, cdf, color='orange', label='CDF')\n",
    "plt.title('指数分布的累积分布函数')\n",
    "plt.xlabel('时间 t')\n",
    "plt.ylabel('累计概率 F(t)')\n",
    "plt.grid(True)\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "id": "4db73c5a-b916-4c2b-9551-8a557de502f1",
   "metadata": {},
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 1. 原始数据（面积 x 和房价 y）\n",
    "x = np.array([50, 60, 70])\n",
    "y = np.array([100, 120, 140])\n",
    "\n",
    "# 2. 初始化参数\n",
    "w = 1 # 初始斜率\n",
    "b = 1  # 初始截距\n",
    "lr = 0.0001  # 学习率\n",
    "epochs = 10  # 训练轮数\n",
    "\n",
    "# 3. 记录每一轮的误差\n",
    "loss_history = []\n",
    "\n",
    "# 4. 开始梯度下降训练\n",
    "for epoch in range(epochs):\n",
    "    # 预测值\n",
    "    y_pred = w * x + b\n",
    "\n",
    "    # 计算误差\n",
    "    error = y - y_pred\n",
    "\n",
    "    # 均方误差\n",
    "    loss = np.mean(error ** 2)\n",
    "    loss_history.append(loss)\n",
    "\n",
    "    # 计算梯度\n",
    "    dw = -2 * np.mean(x * error)\n",
    "    db = -2 * np.mean(error)\n",
    "\n",
    "    # 更新参数\n",
    "    w -= lr * dw\n",
    "    b -= lr * db\n",
    "\n",
    "# 5. 打印最终参数\n",
    "print(f\"训练完成：w = {w:.4f}, b = {b:.4f}\")\n",
    "\n",
    "# 6. 可视化：损失下降 + 拟合效果\n",
    "fig, axs = plt.subplots(1, 2, figsize=(12, 5))\n",
    "\n",
    "# 左图：损失变化曲线\n",
    "axs[0].plot(loss_history, label='MSE Loss')\n",
    "axs[0].set_title('Loss下降过程')\n",
    "axs[0].set_xlabel('训练轮数')\n",
    "axs[0].set_ylabel('MSE')\n",
    "axs[0].legend()\n",
    "\n",
    "# 右图：拟合结果\n",
    "axs[1].scatter(x, y, color='blue', label='实际值')\n",
    "axs[1].plot(x, w * x + b, color='red', label='预测值')\n",
    "axs[1].set_title('线性回归拟合效果')\n",
    "axs[1].set_xlabel('面积（㎡）')\n",
    "axs[1].set_ylabel('房价（万元）')\n",
    "axs[1].legend()\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "id": "b2b7a94e-2296-4354-bcaa-1be721762d8f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-01T06:57:02.291834Z",
     "start_time": "2025-10-01T06:57:01.607343Z"
    }
   },
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "\n",
    "matplotlib.rcParams['font.sans-serif'] = ['PingFang HK']  # 设置中文字体\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False         # 解决负号显示问题\n",
    "\n",
    "plt.title(\"学习进度\")\n",
    "plt.plot([1, 2, 3], [1, 4, 9])\n",
    "plt.show()\n"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data",
     "jetTransient": {
      "display_id": null
     }
    }
   ],
   "execution_count": 1
  }
 ],
 "metadata": {
  "ipyflow": {
   "cell_children": {
    "1716c42a-b9c0-4eab-944f-2644f598bbb3": [],
    "2cde91e5-00ec-4b3d-a979-bfb4a4618400": [],
    "43f0d9f8-5465-46ae-b0f4-564fd6f85aea": [],
    "4c48045d-92c6-4e50-b418-49825221c0fa": [],
    "6add0f97-c51b-47ec-b783-05a591d28792": [
     "7b804e57-7acc-46cc-bf17-f4072452b012"
    ],
    "7b804e57-7acc-46cc-bf17-f4072452b012": [],
    "7e406598-d07c-4491-b1b0-41bbf1cf04b9": [],
    "a4d64587-01dd-42c4-837a-17338dffbf33": [],
    "d00725ba-be29-4d81-b47d-b5433017f0c7": [],
    "e4a95ba2-0dd3-4453-864e-4e426d2a770f": []
   },
   "cell_parents": {
    "1716c42a-b9c0-4eab-944f-2644f598bbb3": [],
    "2cde91e5-00ec-4b3d-a979-bfb4a4618400": [],
    "43f0d9f8-5465-46ae-b0f4-564fd6f85aea": [],
    "4c48045d-92c6-4e50-b418-49825221c0fa": [],
    "6add0f97-c51b-47ec-b783-05a591d28792": [],
    "7b804e57-7acc-46cc-bf17-f4072452b012": [
     "6add0f97-c51b-47ec-b783-05a591d28792"
    ],
    "7e406598-d07c-4491-b1b0-41bbf1cf04b9": [],
    "a4d64587-01dd-42c4-837a-17338dffbf33": [],
    "d00725ba-be29-4d81-b47d-b5433017f0c7": [],
    "e4a95ba2-0dd3-4453-864e-4e426d2a770f": []
   }
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  },
  "panel-cell-order": [
   "15d0f767-76cd-4a6d-bf5f-7a7a9a201a10"
  ]
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
